package com.hzlx.qualitytasks.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 质量检验任务（记录IQC/IPQC/FQC全流程）对象 mes_quality_inspection_tasks
 * 
 * @author ruoyi
 * @date 2025-07-01
 */
public class QualityInspectionTasks extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 检验任务ID */
    private Long taskId;

    /** 检验类型（IQC:来料检/IPQC:制程检/FQC:终检） */
    @Excel(name = "检验类型", readConverterExp = "I=QC:来料检/IPQC:制程检/FQC:终检")
    private String inspectionType;

    /** 关联工单ID（IPQC/FQC时必填） */
    @Excel(name = "关联工单ID", readConverterExp = "I=PQC/FQC时必填")
    private String workOrderId;

    /** 关联物料批次ID（IQC时必填） */
    @Excel(name = "关联物料批次ID", readConverterExp = "I=QC时必填")
    private String materialBatchId;

    /** 关联检验标准ID */
    @Excel(name = "关联检验标准ID")
    private String standardId;

    /** 抽样数量 */
    @Excel(name = "抽样数量")
    private Long sampleQuantity;

    /** 已检数量 */
    @Excel(name = "已检数量")
    private Long inspectionQuantity;

    /** 任务状态（待处理/进行中/已完成/已取消） */
    @Excel(name = "任务状态", readConverterExp = "待=处理/进行中/已完成/已取消")
    private String taskStatus;

    /** 总体判定结果（通过/不通过） */
    @Excel(name = "总体判定结果", readConverterExp = "通=过/不通过")
    private String overallResult;

    /** 指派执行人员ID */
    @Excel(name = "指派执行人员ID")
    private String assignedToUserId;

    /** 检验开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "检验开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 检验结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "检验结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 检验过程备注 */
    @Excel(name = "检验过程备注")
    private String notes;

    /** 任务创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "任务创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;

    /** 最后更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedAt;

    public void setTaskId(Long taskId) 
    {
        this.taskId = taskId;
    }

    public Long getTaskId() 
    {
        return taskId;
    }

    public void setInspectionType(String inspectionType) 
    {
        this.inspectionType = inspectionType;
    }

    public String getInspectionType() 
    {
        return inspectionType;
    }

    public void setWorkOrderId(String workOrderId) 
    {
        this.workOrderId = workOrderId;
    }

    public String getWorkOrderId() 
    {
        return workOrderId;
    }

    public void setMaterialBatchId(String materialBatchId) 
    {
        this.materialBatchId = materialBatchId;
    }

    public String getMaterialBatchId() 
    {
        return materialBatchId;
    }

    public void setStandardId(String standardId) 
    {
        this.standardId = standardId;
    }

    public String getStandardId() 
    {
        return standardId;
    }

    public void setSampleQuantity(Long sampleQuantity) 
    {
        this.sampleQuantity = sampleQuantity;
    }

    public Long getSampleQuantity() 
    {
        return sampleQuantity;
    }

    public void setInspectionQuantity(Long inspectionQuantity) 
    {
        this.inspectionQuantity = inspectionQuantity;
    }

    public Long getInspectionQuantity() 
    {
        return inspectionQuantity;
    }

    public void setTaskStatus(String taskStatus) 
    {
        this.taskStatus = taskStatus;
    }

    public String getTaskStatus() 
    {
        return taskStatus;
    }

    public void setOverallResult(String overallResult) 
    {
        this.overallResult = overallResult;
    }

    public String getOverallResult() 
    {
        return overallResult;
    }

    public void setAssignedToUserId(String assignedToUserId) 
    {
        this.assignedToUserId = assignedToUserId;
    }

    public String getAssignedToUserId() 
    {
        return assignedToUserId;
    }

    public void setStartTime(Date startTime) 
    {
        this.startTime = startTime;
    }

    public Date getStartTime() 
    {
        return startTime;
    }

    public void setEndTime(Date endTime) 
    {
        this.endTime = endTime;
    }

    public Date getEndTime() 
    {
        return endTime;
    }

    public void setNotes(String notes) 
    {
        this.notes = notes;
    }

    public String getNotes() 
    {
        return notes;
    }

    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }

    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("taskId", getTaskId())
            .append("inspectionType", getInspectionType())
            .append("workOrderId", getWorkOrderId())
            .append("materialBatchId", getMaterialBatchId())
            .append("standardId", getStandardId())
            .append("sampleQuantity", getSampleQuantity())
            .append("inspectionQuantity", getInspectionQuantity())
            .append("taskStatus", getTaskStatus())
            .append("overallResult", getOverallResult())
            .append("assignedToUserId", getAssignedToUserId())
            .append("startTime", getStartTime())
            .append("endTime", getEndTime())
            .append("notes", getNotes())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
            .toString();
    }
}
